iT邦幫忙

2023 iThome 鐵人賽

DAY 22
0
AI & Data

機器學習不難嘛系列 第 22

Day22-MNIST模型資料預處理

  • 分享至 

  • xImage
  •  

在進行MLP的大型預測時,需要先將MNIST中的每張28*28的二維向量圖片傳換為784個float型態浮點數,其目的是以便在機器學習模型中使用。這通常在使用像素值作為特徵的圖像分類任務中使用,其中每個樣本被表示為一個一維特徵向量,每個元素對應於圖像中的一個像素值。

我們會利用reshape()方法將28*28的圖片轉換為784個數字的一維向量,再以astype()方法把784個數字都轉為float型態浮點數,如下:

train_feature_vector = train_feature.reshape(len(train_feature),
  784).astype('float32')
test_feature_vector = test_feature.reshape(len(test_feature),
  784).astype('float32')

查看是否已轉換為784個一維向量:

print(train_feature_vector.shape,test_feature_vector.shape)

https://ithelp.ithome.com.tw/upload/images/20231007/20162311EwN1XuVIBl.png

兩個數據中的第1個參數是圖片總數,第2個是幾個一維向量。

再來要查看784個數字的值

print(train_feature_vector[0])

https://ithelp.ithome.com.tw/upload/images/20231007/20162311aAzkBgKUpA.png

可以發現這些值範圍都是0到255之間的浮點數,這段程式碼可以找出他的特徵向量,並印出來

我們所得到的這些值因為數字太大以及數量太多所以效率會有所下降,我們利用之前學過的標準化可以把0到255的這784個數字去除以255,將會得到0到1之間的浮點數,可以有效的增加效率。

train_feature_normalize = train_feature_vector / 255
test_feature_normalize = test_feature_vector / 255

再將它印出來:

print(train_feature_normalize[0])

https://ithelp.ithome.com.tw/upload/images/20231007/2016231178WSoKmFhJ.png


上一篇
Day21-MNIST察看結果
下一篇
Day23-MNIST模型訓練
系列文
機器學習不難嘛30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言